﻿function CargarPagina(URL, div) {

        var obj = false;

        if (window.XMLHttpRequest) {
            obj = new XMLHttpRequest(); // Objeto para CHROME, OPERA, SAFARI Y FIREFOX
        } else if (window.ActiveXObject) {

            try {
                obj = new ActiveXObject ("Msxml2.XMLHTTP"); //Objeto para Explorer
                } catch (e) {
                    // en caso que sea una versión antigua
                    try {
                        obj = new ActiveXObject ("Microsoft.XMLHTTP"); // Objeto para versiones antiguas de Explorer
                    } catch (e) {
                        
                    }
                }
            return false;
        }
        
        obj.onreadystatechange = function () {
            if ( obj.readyState == 4 && (obj.status == 200 || window.location.href.indexOf ("http")==- 1)) {
                document.getElementById(div).innerHTML = obj.responseText;
            } else {
                document.getElementById(div).innerHTML = "<img src='./webroot/images/cargando.gif'/></img>";
            }    
        };
        
        obj.open("GET", URL , true);
        obj.send(null);
        return (true);
}

function verificarCampos(URL, div, frm) {
    var form = document.getElementById(frm);
    if (getFormData(frm, 'alert', true)) {
        if (form.elements[9].value != form.elements[10].value) {
                alert("Las direcciones de correo electrónico no coinciden, por favor veriifcalas");
        } else {
            if (form.elements[7].value != form.elements[8].value) {
                alert("Las contraseñas no coinciden");
            } else {
                                EnviarFrm(URL, div, frm);

                    
                
            }
        }
    }
}


function EnviarFrm(URL, div, frm) {

        var obj = false;
        if (window.XMLHttpRequest) {
            obj = new XMLHttpRequest(); // Objeto para CHROME, OPERA, SAFARI Y FIREFOX
        } else if (window.ActiveXObject) {

            try {
                obj = new ActiveXObject ("Msxml2.XMLHTTP"); //Objeto para Explorer
                } catch (e) {
                    // en caso que sea una versión antigua
                    try {
                        obj = new ActiveXObject ("Microsoft.XMLHTTP"); // Objeto para versiones antiguas de Explorer
                    } catch (e) {
                        
                    }
                }
            return false;
        }
        obj.onreadystatechange = function () {
            if ( obj.readyState == 4 && (obj.status == 200 || window.location.href.indexOf ("http")==- 1)) {
                document.getElementById(div).innerHTML = obj.responseText;
            } else {
                document.getElementById(div).innerHTML = "<img src='./webroot/images/cargando.gif'/></img>";
            }    
        };
        
        obj.open("GET", URL + "?" + getFormData(frm, 'silent', true), true);

        obj.send(null);
        return (true);
}

function getFormData(objf, info, rval) {
    // La función getFormData recorre todos los elementos de un formulario
    // y va formando una cadena de formato "objeto=valor&objeto=valor&...".
    // Los campos del formulario para los que se haya especificado el
    // atributo TITLE, serán considerados campos obligatorios.
    //
    // formato: getFormData(objetoFormulario, tipoAvisoError, returnValue);
    // objetoFormulario: tiene que ser el OBJETO, NO el nombre del formulario
    // tipoAvisoError: silent: no muestra errores, si no se obtuvieron datos del formulario
    // alert: muestra un mensaje de alerta y detiene la ejecución, si no se obtuvieron los datos
    // returnValue: si debe devolver o no el resultado, true o false
    // los campos con el title vació no son alertados
    //
    // ejemplo: var queryStrign = getFormData('formularioId', 'silent', true);
    var formComplete = true;
    var alertMsg = "Debe completar los siguientes campos:\r";
    var getstr = "";
    var formObj =document.getElementById(objf);
    for (var i = 0; i < formObj.elements.length; i++) {
        
        if (formObj.elements[i].type != undefined && formObj.elements[i].name != undefined){
            var elemValLength = formObj.elements[i].value;
            // si algún campo para el envío de archivos cambia el enctype del form.
            if (formObj.elements[i].type == "file"){
                formObj.enctype = "multipart/form-data";
            }
            // chequea que todos los campos con atributo TITLE estén completos.
            if (formObj.elements[i].title != "" && elemValLength.length < 1) {
                alertMsg += " - " + formObj.elements[i].title + "\r";
                formComplete = false;
                continue;
            }
            // si es un checkbox, verifica que esté chequeado
            if (formObj.elements[i].type == "checkbox"){
                if (formObj.elements[i].checked == true){
                    getstr += formObj.elements[i].name + "=" + formObj.elements[i].value + "&";
                }
                continue;
            }
            // si es un radio, verifica que esté chequeado
            if (formObj.elements[i].type == "radio"){
                if (formObj.elements[i].checked == true){
                    getstr += formObj.elements[i].name + "=" + formObj.elements[i].value + "&";
                }
                continue;
            }
            if (elemValLength.length > 0) {
                getstr += formObj.elements[i].name + '=' + formObj.elements[i].value + '&';
            }
        }
    }
    if (!formComplete){
        if (info == 'alert'){
            alert(alertMsg);
        }
        return false;
    } else {
        if (rval){
            return getstr;
        } else {
            return true;
        }
    }
}
